{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "\n",
    "# DAC-ADC Pmod Examples using Matplotlib and Widget"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "skip"
    }
   },
   "source": [
    "----"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "source": [
    "## Contents\n",
    "\n",
    "\n",
    "[Pmod DAC-ADC Feedback](#Pmod-DAC-ADC-Feedback)\n",
    "\n",
    "[Tracking the IO Error](#Tracking-the-I/O-linearity)\n",
    "\n",
    "[Error plot with Matplotlib](#Error-plot-with-Matplotlib)\n",
    "\n",
    "[XKCD Plot](#XKCD-Plot)\n",
    "\n",
    "[Widget controlled plot](#Wideget-controlled-plot)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "----"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Pmod DAC-ADC Feedback"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "This example shows how to use the PmodDA4 DAC and the PmodAD2 ADC on the PYNQ-Z1 board, using the baord's two Pmod interfaces.  The notebook then compares the DAC output to the ADC input and tracks the errors.\n",
    "\n",
    "The errors are plotted using Matplotlib and an XKCD version of the plot is produced (for fun). Finally a slider widget is introduced to control the number of samples diaplayed in the error plot.\n",
    "\n",
    "Note: The output of the DAC (pin A) must be connected with a wire to the input of the ADC (V1 input)."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 1. Import hardware libraries and classes"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "from pynq import Overlay\n",
    "from pynq.iop import Pmod_ADC, Pmod_DAC"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 2. Program the ZYNQ PL"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "ol = Overlay('base.bit')\n",
    "ol.download()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 3. Instantiate the Pmod peripherals as Python objects"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "from pynq.iop import PMODA,PMODB\n",
    "adc = Pmod_ADC(PMODA)\n",
    "dac = Pmod_DAC(PMODB)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 4. Write to DAC, read from ADC, print result"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0.3418]\n"
     ]
    }
   ],
   "source": [
    "dac.write(0.35)\n",
    "sample = adc.read()\n",
    "print(sample)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "----\n",
    "\n",
    "[Contents](#Contents)\n",
    "\n",
    "----"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Tracking the IO Error\n",
    "Report DAC-ADC Pmod Loopback Measurement Error."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "collapsed": false,
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Value written: 0.00\tSample read: 0.00\tError: +0.0020\n",
      "Value written: 0.11\tSample read: 0.10\tError: -0.0037\n",
      "Value written: 0.21\tSample read: 0.21\tError: +0.0004\n",
      "Value written: 0.32\tSample read: 0.31\tError: -0.0072\n",
      "Value written: 0.42\tSample read: 0.43\tError: +0.0086\n",
      "Value written: 0.53\tSample read: 0.50\tError: -0.0278\n",
      "Value written: 0.63\tSample read: 0.62\tError: -0.0144\n",
      "Value written: 0.74\tSample read: 0.73\tError: -0.0102\n",
      "Value written: 0.84\tSample read: 0.81\tError: -0.0335\n",
      "Value written: 0.95\tSample read: 0.93\tError: -0.0177\n",
      "Value written: 1.05\tSample read: 1.03\tError: -0.0253\n",
      "Value written: 1.16\tSample read: 1.12\tError: -0.0368\n",
      "Value written: 1.26\tSample read: 1.25\tError: -0.0171\n",
      "Value written: 1.37\tSample read: 1.31\tError: -0.0598\n",
      "Value written: 1.47\tSample read: 1.43\tError: -0.0401\n",
      "Value written: 1.58\tSample read: 1.53\tError: -0.0516\n",
      "Value written: 1.68\tSample read: 1.62\tError: -0.0631\n",
      "Value written: 1.79\tSample read: 1.75\tError: -0.0434\n",
      "Value written: 1.89\tSample read: 1.81\tError: -0.0842\n",
      "Value written: 2.00\tSample read: 1.93\tError: -0.0664\n"
     ]
    }
   ],
   "source": [
    "from math import ceil\n",
    "from time import sleep\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "from pynq import Overlay\n",
    "from pynq.iop import Pmod_ADC, Pmod_DAC\n",
    "\n",
    "ol = Overlay('base.bit')\n",
    "ol.download()\n",
    "\n",
    "adc = Pmod_ADC(1)\n",
    "dac = Pmod_DAC(2)\n",
    "\n",
    "delay = 0.0\n",
    "values = np.linspace(0, 2, 20)\n",
    "samples = []\n",
    "for value in values:\n",
    "    dac.write(value)\n",
    "    sleep(delay)\n",
    "    sample = adc.read()\n",
    "    samples.append(sample[0])\n",
    "    print('Value written: {:4.2f}\\tSample read: {:4.2f}\\tError: {:+4.4f}'.\n",
    "          format(value, sample[0], sample[0]-value))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Error plot with Matplotlib\n",
    "This example shows plots in notebook (rather than in separate window)."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "collapsed": false,
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\nMzPL5P8DDOtx8XZx5BoAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x2f85ef50>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "%matplotlib inline\n",
    "    \n",
    "X = np.arange(len(values))\n",
    "plt.bar(X + 0.0, values, facecolor='blue', \n",
    "        edgecolor='white', width=0.5, label=\"Written_to_DAC\")\n",
    "plt.bar(X + 0.25, samples, facecolor='red', \n",
    "        edgecolor='white', width=0.5, label=\"Read_from_ADC\")\n",
    "\n",
    "plt.title('DAC-ADC Linearity')\n",
    "plt.xlabel('Sample_number')\n",
    "plt.ylabel('Volts')\n",
    "plt.legend(loc='upper left', frameon=False)\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "----\n",
    "\n",
    "[Contents](#Contents)\n",
    "\n",
    "----"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## XKCD Plot\n",
    "\n",
    "Same data plotted in XKCD format ...\n",
    "\n",
    "(http://xkcd.com)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "collapsed": false,
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x2f86c0d0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "%matplotlib inline\n",
    "    \n",
    "# xkcd comic book style plots\n",
    "with plt.xkcd():\n",
    "    X = np.arange(len(values))\n",
    "    plt.bar(X + 0.0, values, facecolor='blue', \n",
    "            edgecolor='white', width=0.5, label=\"Written_to_DAC\")\n",
    "    plt.bar(X + 0.25, samples, facecolor='red', \n",
    "            edgecolor='white', width=0.5, label=\"Read_from_ADC\")\n",
    "\n",
    "    plt.title('DAC-ADC Linearity')\n",
    "    plt.xlabel('Sample_number')\n",
    "    plt.ylabel('Volts')\n",
    "    plt.legend(loc='upper left', frameon=False)\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "----\n",
    "\n",
    "[Contents](#Contents)\n",
    "\n",
    "----"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Widget controlled plot"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "In this example, we extend the IO plot with a slider widget to control the number of samples appearing in the output plot.\n",
    "\n",
    "We use the `ipwidgets` library and the simple `interact()` method to launch a slider bar.\n",
    "\n",
    "> The interact function (ipywidgets.interact) automatically creates user interface (UI) controls for exploring code and data interactively. It is the easiest way to get started using IPython’s widgets.\n",
    "\n",
    "For more details see [Using ipwidgets interact()](https://ipywidgets.readthedocs.io/en/latest/examples/Using%20Interact.html#)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "collapsed": false,
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAY8AAAEXCAYAAABVr8jJAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XmYFdW57/Hvz3boMIhRcAiicCKi0EC3tiA4R6I4BxON\nHuPRGCXmyH1irsdcOSYONzHDidPBiRAPGic0iRKJQUW9zqixEY6IiiKiAhrAiIrQIvLeP6q6z6bt\nYVd37949/D7PU0/vWrVWrbe6Yb+7VtWupYjAzMwsi82KHYCZmXU8Th5mZpaZk4eZmWXm5GFmZpk5\neZiZWWZOHmZmlpmTh1k7I+kASQuL1PcpkmYVo2/rWJw8rN2QtETSOkkfS1otabaksyV94d+ppEsk\nhaSR9WzbSdJ/SXo33derki6V1L2J/uvdp6TTJX0uaU26vCnpJkm716m3ZbqP1yV9kh7PVEn9Gzne\nMXXLI+LJiBjUWKyFEhG3R8RhNevp72O3YsRi7ZuTh7U3x0RET2BX4FfA/wH+K7eCJAH/AryU/szd\nti3wDPAlYFS6r68DvYCvNtRpY/tMPRMRPdL9jAHWAXMkleXU+RNwLPDPab3hQBVwaD4HXmySNi92\nDNaBRIQXL+1iAZYAY+qUjQA2AmU5ZQcC7wOHpD+3zNn2c2A+sFnGvhvb5+nAU/W0uQ/4U/q6JqH0\na8nxpuUHA0vr1Ps34EXgQ+AuoDRn+9HAPGA1MBsYlrPtAuAN4GPgZWBcneN6GrgqPeaf5x4r8AQQ\nwCfAGuDbJMn1mJx9bAGsAiqK/e/HS9suPvOwdi0i/gYsBQ7IKT4N+DPwGMkb9jE528YA90TExoxd\nNbbPhtyTE9cY4G8R8U7GfvN1IjAWGAAMI3mTR1IFMBX4PrAd8FtghqSt0nZvpDH2Ai4FbpO0U85+\nRwKLgR2Ay3I7jIgD05fDI6JHRNwF3AJ8J6fakcC7ETG3dQ7TOgonD+sIlgPbAkjqBpwA/DEiArib\nTYeZtgPezbLzPPbZZFzN6TejSRGxPCL+AfwFKE/LxwO/jYjnIuLziPg98CmwL0BE/DFttzF983+d\n5Gyu9hgi4pqI2BAR6/KI4zbgKElbp+unAre2wvFZB+PkYR1BX+Af6etxwGfAw+n6H4AjJPVJ198H\ndqIBkv4958L35Dz3mU9cjfbbCt7Leb0W6JG+3hU4L73BYLWk1UA/4CsAkv5F0rycbWVA75x9ZTpT\niojlJENd35S0DXAEcHuzjsg6NCcPa9ck7UPyJv1UWnQa0BNYKuk9kqGjLUguUkOSAMbVd4cWQET8\nIh2C6RERZ+e5z4aMA57M6XeEpJ2zHmMLvQNcFhHb5CzdImKapF2B3wETgO0iYhuSaxbKad+cx2r/\nnmTo6gSSGwmWtfAYrANy8rB2SdLWko4G7gRui4j5kvqS3Ll0NMmwTTnJHU2/5n+Gma4EtgZ+n755\nIqmvpCslDaunn3z2mVu/RNIASdeQXNi+FCAiHgYeAqZL2lvS5pJ6prcan9HIoW4hqTRnyXrH0++A\nsyWNVKK7pKMk9QS6kySHlWns3yU588ji78A/1SmbDuwF/JDkGoh1QU4e1t78RdLHJJ+oLyRJBt9N\nt50KzIuIWRHxXs0CTAKGSSpLrwmMJhmGei7d1yMkdyktqqe/JveZ1hslaQ3wEclF9a2BfSJifs6+\nvgXMJLkb6kOST/mV/M9wWH1mklygr1kuyeu3lIqIKuAs4Frgg/QYT0+3vQxcQXLr8t+BoSRDTllc\nQpKIV0s6Md3vOpKzswHpT+uClFwfNDPLn6SfAoMi4jtNVrZOyV8KMrNM0i9ifo/87kizTsrDVmaW\nN0lnkQwpPhARTxQ7HiseD1uZmVlmPvMwM7PMOtU1j969e0f//v2LHYaZWYcxZ86cVRHR1Bdiv6BT\nJY/+/ftTVVVV7DDMzDoMSW81p52HrczMLDMnDzMzy8zJw8zMMnPyMDOzzJw8zMwsMycPMzPLrGDJ\nQ1I/SY9KelnSAkk/rKeOJE2StEjSi5L2ytk2VtLCdNsFhYrTzMyyK+SZxwbgvIgYTDIl5jmSBtep\ncwQwMF3GAzdAMmcCcF26fTBwcj1tzcysSAqWPCLi3Yh4IX39MfAKyYxwuY4DbonEs8A2knYimWN5\nUUQsjoj1JBMCHdcacVVXt8ZeCrc/M7OOoE2ueUjqD1QAz9XZ1JdN51BempY1VF7fvsdLqpJUtXLl\nyiZjKS0FqfWW0tLG+/vRj37E1VdfXbt++OGHc+aZZ9aun3feeVx55ZVfaDd69GgAlixZwh133FFb\nPm/ePGbOnNnkcWb1i1/8otltS0pKKC8vZ8iQIQwfPpwrrriCjRs3blLn3HPPpW/fvl8ov//++6ms\nrGTw4MFUVFRw3nnnNTsOs/asJR802+OH1IInD0k9gLuBcyPio9bef0RMiYjKiKjs0yfz41kKbr/9\n9mP27NkAbNy4kVWrVrFgwYLa7bNnz65NFAAbNmyoLYeOkTy+9KUvMW/ePBYsWMBDDz3E/fffz6WX\nXlq7fePGjcyYMYM999yTxx9/vLb8pZdeYsKECdx22228/PLLVFVVsdtuu7XoOMzaq5Z8cG3qQ2ox\nFDR5SNqCJHHcHhH1TVe5DOiXs75zWtZQeYczevRonnnmGQAWLFhAWVkZPXv25IMPPuDTTz/llVde\n4aOPPuKAAw7g2GOPZfDg5NJOjx49ALjgggt48sknKS8v59e//jUXXXQRd911F+Xl5dx111188skn\nnHHGGYwYMYKKigruvfdeAG6++WaOP/54xo4dy8CBA/nxj3/cYIwXXHAB69ato7y8nFNOOQWAK6+8\nkrKyMsrKyjY5c2rK9ttvz5QpU7j22mupedz/Y489xrBhw/je977HtGnTauv+x3/8BxdeeCF77LEH\nkJzB/OAHP8i7LzMroogoyAIIuAW4upE6RwH3p3X3Bf6Wlm8OLCaZI3lL4L+BIU31uffee0c+oPWW\nfPTv3z/eeuutmDx5ctxwww3xk5/8JP7617/GU089Ffvvv388+uij0a1bt1i8eHFtm+7du0dExKOP\nPhpHHXVUbflNN90U55xzTu36xIkT49Zbb42IiA8++CAGDhwYa9asiZtuuikGDBgQq1evjnXr1sUu\nu+wSb7/9doMx1vQXEVFVVRVlZWWxZs2a+Pjjj2Pw4MHxwgsv5NW2Rq9eveK9996LiIgzzzwzbr/9\n9vj444+jb9++sX79+oiIqKioiHnz5jX6uzPrTAr5PtP8mKiKZrzHF/LMYz/gVOBrkualy5GSzpZ0\ndlpnZpokFgG/A/41TWgbgAnAgyQX2v8QEQu+0EMHMXr0aGbPns3s2bMZNWoUo0aNql3fb7/9ABgx\nYgQDBgzIvO9Zs2bxq1/9ivLycg4++GCqq6t5++23ATj00EPp1asXpaWlDB48mLfeyu/hmU899RTj\nxo2je/fu9OjRg+OPP54nn3wyc2wA69evZ+bMmRx77LH06NGDkSNH8uCDDzZrX2bWfhTskewR8RTJ\nGUVjdQI4p4FtM0mSS4dXc91j/vz5lJWV0a9fP6644gq23nprvvvd7wLQvXv3Zu07Irj77rsZNGjQ\nJuXPPfccW221Ve16SUlJ7fWUQlu8eDElJSVsv/323HfffaxevZqysjIA1q5dS2lpKUcffTRDhgxh\nzpw5DB8+vE3iMrPW0+W+YV5d3ZqDVvndBTF69Gjuu+8+tt12W0pKSth2221ZvXo1zzzzzCYXy+vT\ns2dPPv744wbXDz/8cK655pra6wtz585t1u9liy224LPPPgPggAMO4M9//jNr167lk08+Yfr06Rxw\nwAF57WflypWcffbZTJgwAUlMmzaNG2+8kSVLlrBkyRLefPNNHnroIdauXcv555/PL37xC1577TUg\nubA+efLkZsVvZm2ryyWP1r5rIZ/9DR06lFWrVrHvvvtuUtarVy969+7daNthw4ZRUlLC8OHDueqq\nqzjkkEN4+eWXay+Y//SnP+Wzzz5j2LBhDBkyhJ/+9KfNOo7x48czbNgwTjnlFPbaay9OP/10RowY\nwciRIznzzDOpqKhosG3NxfYhQ4YwZswYDjvsMC6++GLWrl3LAw88wFFHHVVbt3v37uy///785S9/\nYdiwYVx99dWcfPLJ7LnnnpSVlbF48eJmxW/W0b37ZnWDH1KbVIR7eRV5RdYxVFZWhmcSNLP2So0M\n5Ec0UaExLXgflzQnIiqztutyZx5mZtZynWoOc2vayJEj+fTTTzcpu/XWWxk6dGij7d5//30OPfTQ\nL5Q/8sgjbLfddq0ao5m1f04eXcxzz9V9Qkx+tttuO+bNm9fK0ZhZR+VhKzMzy8zJw8zMMnPyMDOz\nzLpe8vCEHmZmLdb1kkdbT+jB/8x3MXToUMaNG7fJN8Rb4uabb2bChAkNbl+5ciUjR46koqKi2c+m\nao6rr76a0tJSPvzww9qyxx57jF69elFRUcGgQYM48MADue+++zZpd8stt1BWVsbQoUOpqKjg8ssv\nb7OYzSybrpc8iqBmvov58+ez9dZb89vf/rZN+n3kkUcYOnQoc+fO/cLjRT7//POC9Ttt2jTGjBnD\nPfds+hT+Aw44gLlz57Jw4UImTZrEhAkTeOSRR4BkUqirr76aWbNmMX/+fJ599ll69epVsBjNrGWc\nPNrYqFGjeOONN2rXf/Ob37DPPvswbNgwLr744tryb3zjG+y9994MGTKEKVOm1JbfdNNN7L777owY\nMYKnn366wX7mzZvHj3/8Y+69917Ky8tZt24dPXr04LzzzmP48OE888wzPPLII1RUVDB06FDOOOOM\n2u9/9O/fn4kTJ1JeXs7ee+/NnDlzOOyww/jqV7/a5LOn3njjDdavX8+FF164ydwddZWXl3PRRRdx\n7bXXAvDLX/6Syy+/nK985SsAbLXVVpx11lmN9mVmRdSc57i31yXf+TzaekKPmvkuNmzYEMcff3xc\nc801ERHx4IMPxllnnRUbN26Mzz//PI466qh4/PHHIyLi/fffj4iItWvXxpAhQ2LVqlWxfPny6Nev\nX6xYsSI+/fTTGD169CZze9RVd+4PIO66666IiFi3bl3svPPOsXDhwoiIOPXUU+Oqq66KiIhdd901\nrr/++oiIOPfcc6OsrCw++uijWLFiRWy//faNHuvPf/7zuOyyy2Ljxo0xYMCA2jk96s5LEhExd+7c\n2GOPPSIi4stf/nKsXr26qV+lWYfW5FtJESb8oB3O52GpmgcH7rjjjrz99tucfXYyncmsWbOYNWsW\nFRUV7LXXXrz66qu8/vrrAEyaNInhw4ez77778s477/D666/z3HPPcfDBB9OnTx+23HJLvv3tb2eK\no6SkhG9+85sALFy4kAEDBrD77rsDcNppp/HEE0/U1j322GOB5AGO++67Lz179qRPnz5stdVWrF69\nusE+pk2bxoknnogkxo0bxx//+McG60Yneq6aWVfjb5i3gZprHmvXruXwww9nxowZHH/88UQEEydO\n5Pvf//4m9R977DEefvhhnnnmGbp161Y7yVNLlZaWUlJSklfdmrlANttss03mBdlss80anBdk/vz5\nvP7664wZMwZIJoIaMGBAgxf1586dy5577glQO7fH1772tbyPx8yKp2BnHpKmSloh6aUGtp+fM8Pg\nS5I+l7Rtum2JpPnpttZ9TG4xJvRIdevWjUmTJnHhhReyceNGDj/8cKZOncqaNWsAWLZsGStWrODD\nDz/ky1/+Mt26dePVV1/l2WefBZLnUj3++OO8//77fPbZZ41+qm/KoEGDWLJkCYsWLQKS51sddNBB\nzd4fJGcdl1xySe3cHcuXL2f58uX1zmD44osv8rOf/YxzzknmAps4cSLnn38+7733HpAknhtvvLFF\n8ZhZ4RTyzONm4FqSecy/ICJ+A/wGQNIxwI8i4h85VQ6JiFWtHlUxJvTIUVFRwW677cZdd93FySef\nzCuvvMKoUaMA6NGjB7fddhtjx45l8uTJ7LnnngwaNKh2HpCddtqJSy65hFGjRrHNNttQXl7egrBL\nuemmmzjhhBPYsGED++yzT+1wWnPdeeedzJy56eSP48aN484772TkyJE8+eSTVFRUsHbtWrbffnsm\n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\nHfuQE+YAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x2edc6170>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from math import ceil\n",
    "from time import sleep\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "%matplotlib inline\n",
    "\n",
    "from ipywidgets import interact\n",
    "import ipywidgets as widgets\n",
    "\n",
    "from pynq import Overlay\n",
    "from pynq.iop import Pmod_ADC, Pmod_DAC\n",
    "\n",
    "ol = Overlay('base.bit')\n",
    "ol.download()\n",
    "\n",
    "dac = Pmod_DAC(2)\n",
    "adc = Pmod_ADC(1)\n",
    "\n",
    "def capture_samples(nmbr_of_samples):    \n",
    "    # Write to DAC, read from ADC, write to OLED\n",
    "    delay = 0.0\n",
    "    values = np.linspace(0, 2, nmbr_of_samples)\n",
    "    samples = []\n",
    "    for value in values:\n",
    "        dac.write(value)\n",
    "        sleep(delay)\n",
    "        sample = adc.read()\n",
    "        samples.append(sample[0])\n",
    "\n",
    "    X = np.arange(nmbr_of_samples)\n",
    "    plt.bar(X + 0.0, values[:nmbr_of_samples+1], \n",
    "            facecolor='blue', edgecolor='white', \n",
    "            width=0.5, label=\"Written_to_DAC\")\n",
    "    plt.bar(X + 0.25, samples[:nmbr_of_samples+1], \n",
    "            facecolor='red', edgecolor='white', \n",
    "            width=0.5, label=\"Read_from_ADC\")\n",
    "\n",
    "    plt.title('DAC-ADC Linearity')\n",
    "    plt.xlabel('Sample_number')\n",
    "    plt.ylabel('Volts')\n",
    "    plt.legend(loc='upper left', frameon=False)\n",
    "   \n",
    "interact(capture_samples, \n",
    "         nmbr_of_samples=widgets.IntSlider(\n",
    "            min=5, max=30, step=5,\n",
    "            value=10, continuous_update=False));\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "----\n",
    "\n",
    "[Contents](#Contents)\n",
    "\n",
    "----"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.0"
  },
  "widgets": {
   "state": {
    "c1b64babc85043a38c46fd265c8ac132": {
     "views": [
      {
       "cell_index": 25
      }
     ]
    }
   },
   "version": "1.2.0"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
